package cn.kattomy.shop.product.service;


import java.util.List;

import cn.kattomy.shop.image.vo.Image;
import cn.kattomy.shop.product.vo.Product;
import cn.kattomy.shop.utils.PageBean;

public interface ProductService {

	/**
	 * 获取最新的前十个热门商品
	 * @return List<Product> 前十热门商品的 List 集合
	 */
	public List<Product> getHot();

	/**
	 * 获取最新的前十个商品
	 * @return List<Product> 最新的前十个商品的 List 集合
	 */
	public List<Product> getNew();

	/**
	 * 根据 Pid 获取匹配的 Product 商品对象
	 * @param pid
	 * @return Product 商品对象
	 */
	public Product findByPid(Integer pid);

	/**
	 * 根据传入的一级分类 cid 以及当前页码,返回一个 PageBean 对象
	 * @param cid 一级分类的 id
	 * @param page 当前的页码
	 * @return PageBean<Product> 对象
	 */
	public PageBean<Product> findByPageCid(Integer cid, int page);

	/**
	 * 根据传入的二级分类 csid 以及当前页码,返回一个 PageBean 对象
	 * @param cid 二级分类的 id
	 * @param page 当前的页码
	 * @return PageBean<Product> 对象
	 */
	public PageBean<Product> findByPageCsid(Integer csid, int pageNo);

	/**
	 * 根据传入的当前页码，返回一个 PageBean 对象
	 * @param pageNo 当前页面
	 * @return PageBean<Product> 对象
	 */
	public PageBean<Product> findByPageNo(Integer pageNo);

	/**
	 * 保存传入的商品
	 * @param product
	 */
	public void save(Product product);

	/**
	 * 删除传入的商品
	 * @param product
	 */
	public void delete(Product product);

	/**
	 * 修改 product 对象
	 * @param product
	 */
	public void update(Product product);

	public double findCount();

	public List<Product> findAll();

	public void saveImage(Image image);

	public double findImageCount();
	
	/**
	 * hibernate Search 分页查询关键字对应 商品
	 */
	public PageBean<Product> searchByKeyword(Integer pageNo, String keyword);
	
	public void createIndexs();
	
}
